#ifndef NANE_ISEEKABLE_H
#   define NANE_ISEEKABLE_H

#   include "IInput.h"
#   include "IOutput.h"

namespace nane
{
    struct ISeekable
    {
        virtual void Seek( uint32 _pos ) = 0;
        virtual uint32 Tell() = 0;
        virtual uint32 Size() const = 0;
    };

    struct IInputSeekable
        : public IInput
        , public ISeekable
    {
    };
    
    struct IInputSeekableRef
        : public IInputRef
        , public ISeekable
    {
    };

    struct IOutputSeekable
        : public IOutput
        , public ISeekable
    {
    };
    
    struct IOutputSeekableRef
        : public IOutputRef
        , public ISeekable
    {
    };
}   // namespace nane

#endif  // NANE_ISEEKABLE_H
